package two;

public class A038 {

    //对称二叉树
    public boolean isSymmetric(TreeNode root) {
        if(root==null) return true;
        return symmetric(root.left,root.right);
    }
    public boolean symmetric(TreeNode leftRoot,TreeNode rightRoot) {
        //1.都为空
        if(leftRoot==null&&rightRoot==null) return true;
        //2.其中有一个为空
        if(leftRoot==null && rightRoot!=null || leftRoot!=null && rightRoot==null) return false;
        //3.判断值
        if(leftRoot.val != rightRoot.val) return false;
        //4.再分别判断它们的子树 （需要注意对程性）
        if(symmetric(leftRoot.left,rightRoot.right) && symmetric(rightRoot.left,leftRoot.right)) {
            return true;
        }
        return false;
    }


}
